package com.eight.cloud.admin.service;

import com.eight.cloud.admin.entity.RolePermissionDeptEntity;
import com.eight.cloud.admin.entity.RolePermissionEntity;
import com.eight.cloud.core.global.model.LoginUser;
import com.eight.cloud.core.global.model.SysPermission;
import com.eight.cloud.mybatisplus.service.IBaseService;

import java.util.List;

/**
 * 角色部门 服务类
 *
 * @ClassName: IRoleDeptService
 * @Author: TXC
 * @Date: 2024-10-15 15:45
 **/
public interface IRolePermissionDeptService extends IBaseService<RolePermissionDeptEntity> {
    /**
     * 更新部门角色关系
     *
     * @param rolePermissionId  角色权限id
     * @param deptIds 部门id集合
     */
    void flush(String rolePermissionId, List<String> deptIds);

    /** 查询角色数据权限对应的部门
     * @param rolePermission 角色权限信息
     * @return 部门id集合
     */
    List<String> getDeptIds(RolePermissionEntity rolePermission);

    /**
     * 查询权限对应的部门
     * @param rolePermissions 权限
     */
    List<String> getRolePermissionDeptIds(List<RolePermissionEntity> rolePermissions, LoginUser loginUser);

    /**
     * 查询权限对应数据权限类型
     * @param rolePermissions 权限
     * @return
     */
    String getRolePermissionDataScope(List<RolePermissionEntity> rolePermissions);

    /** 查询角色数据权限对应的部门
     * @param rolePermission 权限信息
     * @param loginUser 用户信息
     * @return 部门id集合
     */
    List<String> getDeptIds(RolePermissionEntity rolePermission, LoginUser loginUser);
}
